package com.cards_game.simple_ddz.common;

/**
 * 游戏进度枚举
 * 
 * @author 郭国辉
 * 
 *         2017年6月30日下午3:54:53
 */
public enum GameProgressEnum {
	/**
	 * 所有人未准备
	 */
	NONE_READY(1000),
	/**
	 * 一人准备
	 */
	ONE_READY(1001),
	/**
	 * 两个准备，可以开始计时，30秒后将为准备玩家踢出房间
	 */
	TWO_READY(1002),
	/**
	 * 三个准备，开始发牌
	 */
	ALL_READY(2000),
	/**
	 * 发牌完毕，抢地主阶段
	 */
	GRAB_LANDLORD(2001),
	/**
	 * 地主确定，亮底牌
	 */
	DEAL_HOLE_CARDS(2002),
	/**
	 * 出牌阶段
	 */
	PLAY_CARDS(2003),
	/**
	 * 一人牌出完，结束阶段
	 */
	GAME_OVER(2004);

	private int value;

	private GameProgressEnum(int value) {
		this.value = value;
	}

	public int getValue() {
		return value;
	}
	
	public GameProgressEnum getNextFlowNode(){
		return GameProgressEnum.values()[this.ordinal()+1];
	}
	public GameProgressEnum getPriorFlowNode(){
		return GameProgressEnum.values()[this.ordinal()-1];
	}
	public boolean beforeTheFlowNode(GameProgressEnum flowNode){
		return this.ordinal()<flowNode.ordinal();
	}
	public boolean afterTheFlowNode(GameProgressEnum flowNode){
		return this.ordinal()>flowNode.ordinal();
	}
}
